package com.example.dao;

import com.example.entity.Perm;

import java.util.List;

/**
* @author fyxw
* @description 针对表【rbac_perm】的数据库操作Mapper
* @createDate 2021-11-28 10:23:19
* @Entity com.example.entity.Perm
*/
public interface PermDao {
    /**
     * 通过id查询
     *
     * @param id 唯一标识符
     * @return Perm 对象
     */
    Perm findPermById(int id);

    /**
     * 新建一个perm
     *
     * @param perm 传入一个perm对象，id不需要赋值
     */
    void addPerm(Perm perm);

    /**
     * 通过id删除perm, 并返回是否删除成功,
     * 不处理由于异常导致的失败行为, 仅处理无此id对应的perm导致的删除失败
     *
     * @param id perm id
     * @return 是否删除成功
     */
    int deleteById(int id);

    /**
     * 通过新的perm修改原有的perm, id必须提供
     * 其余字段,若为null,则不会修改该字段
     *
     * @param perm 已经修改的perm
     */
    void updatePerm(Perm perm);

    /**
     * 查询所有数据
     * @return list
     */
    List<Perm> findAll();

    /**
     * 通过名字查询用户的所有权限
     * @param roles manager用户名
     * @return 用户对应的权限集合
     */
    List<String> findPerms(List<String> roles);
}




